SPSS MATCH FILES 命令快速教程与示例

作者:Ruben Geert van den Berg,归属于 SPSS A-Z 词汇表

MATCH FILES 是一个 SPSS 命令,主要用于合并具有相似个案(cases)不同变量(variables)的数据。如果数据具有不同的个案但相似的变量,请使用 [ADD FILES](/spss-add-files-command) 命令。MATCH FILES 也可以用于执行类似于 Excel 中 VLOOKUP 的表查找操作。

SPSS Match Files 通过唯一个案标识符 id 合并两个数据集。

SPSS MATCH FILES - 基本用法

  • MATCH FILES 最常见的应用场景是合并两个数据文件或数据集,它们包含相似个案的不同变量。
  • 每个个案在每个数据源中都有一个唯一的 ID(标识符)。这个 ID 告诉 SPSS 哪个数据源中的个案对应于另一个数据源中的哪个个案。对应的个案在合并后的数据中会成为一个单一的个案。
  • 下面的 语法 演示了一个非常基本的 MATCH FILES 命令。如果你不熟悉如何使用多个数据集,请查看 SPSS 数据集教程 1 - 基础

SPSS MATCH FILES 语法示例 1

***1. 创建测试数据 1.
**
data list free/id test_1.
begin data
1 8
3 4
5 6
end data.
dataset name test_1.

***2. 创建测试数据 2.
**
data list free/id test_2.
begin data
1 4
3 9
4 8
end data.
dataset name test_2.

***3. 合并 test_1 和 test_2.
**
match files file = test_1
/file = test_2
/by id.
execute.

***4. 关闭除合并后的数据集之外的所有数据集.
**
dataset close test_1.
dataset close test_2.

SPSS MATCH FILES - 表查找

  • 第二个常见的应用场景是有一个包含受访者及其邮政编码的文件。请注意,受访者文件中可能存在重复的邮政编码
  • 如果我们还有一个表,其中包含每个邮政编码对应的城市(或地区),我们可以将这些信息合并到受访者数据中。在这种情况下,我们可以使用 MATCH FILES 命令,其中包含一个 FILE (包含重复项)和一个 TABLE (不包含重复项)
  • 下面的语法演示了如何执行此操作。请注意,* 指的是当前活动数据集。

SPSS MATCH FILES 语法示例 2

***1. 包含邮政编码和城市的表.
**
data list free/zip_code (f3.0) city(a20).
begin data
123 'Amsterdam'
456 'Haarlem'
789 "'s Hertogenbosch"
end data.
dataset name cities.

***2. 包含受访者及其邮政编码的迷你数据.
**
data list free /id zip_code.
begin data
1 123
2 123
3 123
4 456
5 456
6 456
7 789
8 789
9 789
end data.

***3. 使用邮政编码将城市添加到活动数据集.
**
match files file * / table cities
/by zip_code.
execute.

***4. 关闭除合并后的数据之外的所有数据.
**
dataset close cities.

SPSS MATCH FILES - 单个数据源

  • MATCH FILES 也可以与单个数据源一起使用。这通常用于重新排序变量和/或删除变量
  • 这里的一个选项是使用 KEEP 子命令。它基本上意味着“删除除…之外的所有变量”。
  • 或者,DROP 子命令意味着“保留除…之外的所有变量”。请注意,这些子命令可以在 GET FILESAVEADD FILES 命令中以类似的方式使用。
  • TOALL 关键字在这里非常方便。但是,在这种情况下,ALL 表示“尚未处理的所有变量”,而不仅仅是所有变量。

SPSS MATCH FILES 语法示例 3

***1. 变量顺序错误的单一个案测试数据.
**
data list free / v1 to v3 v5 v6 v7 v8 v4.
begin data
0 0 0 0 0 0 0 0
end data.

*** 2. 重新排序变量. 注意这里的 TO 和 ALL 关键字.
**
match files file * / keep v1 to v3 v4 all.
execute.

SPSS MATCH FILES - 规则

  • 你可以在一个 MATCH FILES 命令中指定最多 50 个数据源,而不仅仅是合并两个数据源。
  • 可以使用多个变量来唯一定义个案。我们将在下文中将它们称为 BY 变量,因为它们在 BY 子命令中使用。一个常见的例子是受访者拥有一个 household_id (家庭ID)和一个 member_id (成员ID),指示每个家庭的第 n 个成员。这两个变量可能有很多重复项,但它们的组合应该能唯一定义每个受访者。
  • 所有数据必须按 BY 变量升序排序。如有疑问,请在继续之前运行 SORT CASES
  • 合并后的变量的顺序是它们被遇到的顺序。这意味着指定数据源的顺序会影响最终结果。要进行演示,请先使用 file = test_1 / file = test_2 运行第一个语法示例一次,然后再次使用 file = test_2 / file = test_1 运行一次。
  • 确保数据源之间没有重复的变量名。在这种情况下,首先遇到的重复变量上的值会覆盖稍后遇到的变量上的值。令人恼火的是,如果发生这种情况,SPSS 不会 发出警告。